Python读取文本文件(txt、CSV、Excel)

您所在的位置:网站首页 python 读csv文件 Python读取文本文件(txt、CSV、Excel)

Python读取文本文件(txt、CSV、Excel)

2024-06-25 16:02| 来源: 网络整理| 查看: 265

Python读取文本文件(txt、CSV、Excel)

相关程序及数据文件: 链接:https://pan.baidu.com/s/1wVNb3w_eFyVS4nIK_FBfOg 提取码:c3t2 复制这段内容后打开百度网盘手机App,操作更方便哦

读取文本文件(传统方法)

保存数据的文件可能是文本文件、CSV文件、Excel文件或者其他类型。访问数据文件是利用python进行数据处理、加工和分析的前替。一般我们可以通过写固定的文件名称访问,但这样无法处理多个文件。读取不同文件的方法是,在终端窗口(cmd)的命令行中,Python脚本的名字后加上完整文件路径。为此,需要引入sys模块。创建一个.py文件,内容如下,保存为script.py

#!/usr/bin/env python3 from math import exp, log, sqrt import re from datetime import date,time,datetime,timedelta from operator import itemgetter import sys

导入sys模块后,我们就可以使用argv列表变量啦,argv[0]就是返回脚本名称,argv[1]是命令行中传递给脚本的第一个附加参数。 我们先创建一个文本文件(txt),保存在桌面上,文件名为file_to_read.txt,之后再读取它。 在这里插入图片描述 接下来,在script.py文件中写入代码

imput_file=sys.argv[1] print("Output") filereader = open(input_file,'r') for row in filereader: print(row.strip()) filereader()

代码的意思是把读取文件的路径名赋值给filereader后,依次打印出来。保存script.py到桌面。 读取文本文件,在cmd中输入下面的命令: (如果路径不在桌面则,输入cd Desktop) 在这里插入图片描述 就可以读取txt文档的内容: 在这里插入图片描述 注:如果脚本文件与输入文件不在同一个位置,则需要输入文本文件的完整路径名 ,这样脚本才知道去哪里寻找这个文章,比如

python script.py "C:\Users\Administrator\Desktop>file_to_read.txt" with语句读取

上述方法在复杂脚本中会导致错误,因为文件一直被打开,直到用close函数关闭。with语句在语句结束时,自动关闭文件。

imput_file = sys.argv[1] print("Output #144:") with open(input_file,'r',newline='') as filereader: for row in filereader: print("{}".format(row.strip()))

上述都是非常简单的示例,后面的示例,以此为基础访问其他文件类型,或访问多个文件

使用glob读取多个文本文件

glob模块之所以强大,是因为它处理的是文件夹(目录)。 读取多个文件的方法是命令行中将包含输入文件目录路径写在Python脚本名称之后。要使用这种方法,需要引用os模块和glob模块。

#!/usr/bin/enc python3 from math import exp,log,sqrt import re from datetime import date,time,datetime,timedelta from operator import itemgetter import sys import glob import os

os模块函数举例: os.path.join()函数,巧妙地把一个或多个路径连接在一起。 glob模块可以找出与特定模式相匹配的所有路径名。 读取多个文件,我们再创建一个文本文件another_file_to_read,放到桌面,内容如下: 在这里插入图片描述 添加下面代码到script.py文件

inputPath = sys.argv[1] for input_file in glob.glob(os.path.join(inputPath,'*.txt')): with open(input_file,'r',newline='') as filereader: for row in filereader: print("{}".format(row.strip()))

在cmd中输入py文件+读取路径即可:

C:\Users\Administrator\Desktop>script.py "C:\User\Administrator\Desktop\文件名"

结果: 在这里插入图片描述

读取CSV文件

了解如何读取CSV文件,我们先通过基础python代码读取一次,再通过csv模块读取一次。这样我们就知道代码的工作流程了。 创建Script1.py文件,输入下列代码:

#!/usr/bin/env python3 import sys input_file = sys.argv[1] #cmd 中的第一个文件名称 output_file = sys.argv[2] #cmd 中的第二个文件名称 with open(input_file,'r',newline='') as filereader: with open(output_file,'w',newline='') as filewriter: header = filereader.readline() header = header.strip() header_list = header.split(',') print(header_list) filewriter.write(','.join(map(str,header_list))+'\n') for row in filereader: row = row.strip() row_list = row.split(',') print(row_list) filewriter.write(','.join(map(str,row_list))+'\n')

下载数据文件supplier_data.csv,打开可以看到: 在这里插入图片描述 再创建一个output.csv,空文件。然后在cmd中输入: 在这里插入图片描述 就可以看到读取的文件内容: 在这里插入图片描述

CSV模块读取

使用CSV模块读取的优点是,这个模块有利于正确处理数据值中的嵌入逗号和其他复杂模式。比如,$601,500.00 ,采用基础python读取,逗号分割就会分解编程’601’,'500.00’两个数据。 创建Script2.py文件,输入代码:

#!/usr/bin/env python3 import csv import sys input_file = sys.argv[1] output_file = sys.argv[2] with open(input_file,'r',newline='') as csv_if: with open(output_file,'w',newline='') as csv_of: filereader = csv.reader(csv_if,delimiter=',') filewriter = csv.writer(csv_of,delimiter=',') for row in filereader: print(row) filewriter.writerow(row)

把数据文件中最后一行的cost改为$601,500.00。在cmd运行上面的代码。 在这里插入图片描述 最后一行,输出结果依然是我们想要的形式。 在这里插入图片描述

pandas模块读取

创建并保存Script3.py文件,写入代码:

#!/usr/bin/env python3 import sys import pandas as pd input_file = sys.argv[1] output_file = sys.argv[2] data_frame = pd.read_csv(input_file) print(data_frame) data_frame.to_csv(output_file,index=False)

同样,在cmd中运行上述代码。可以看到数据形式为DataFrame的输出。 在这里插入图片描述

读取Excel文件

把之前用的supplier_data.csv文件,在office中打开,然后另存为excel文件(.xls、.xlsx),用两种读取方法将读取supplier_data.csv,并写入output4.xlsx、output5.xlsx文件中。 1、基础python +xlrd、xlwt模块 2、pandas读取

基础python +xlrd、xlwt模块

先用第一种方法读取,创建Script4.py文件,写入代码保存:

#!/usr/bin/env python3 import sys from xlrd import open_workbook from xlwt import Workbook input_f = sys.argv[1] output_f = sys.argv[2] output_wb = Workbook() output_worksheet = output_wb.add_sheet('supplier_data_output') with open_workbook(input_f) as wb: worksheet = wb.sheet_by_name('supplier_data') for row_index in range(worksheet.nrows): for column_index in range(worksheet.ncols): output_worksheet.write(row_index,column_index,worksheet.cell_value(row_index,column_index)) output_wb.save(output_f)

cmd中运行程序: 查看output4文件: 在这里插入图片描述

pandas读取excel

第二种方法,创建Script4.py文件,写入代码保存:

#!/usr/bin/env python3 import pandas as pd import sys input_f = sys.argv[1] output_f = sys.argv[2] date_frame = pd.read_excel(input_f,sheetname='supplier_data') writer = pd.ExcelWriter(output_f) date_frame.to_excel(write,sheet_name='supplier_data',index=False) writer.save()

同样,在cmd中运行: 在这里插入图片描述 查看output5.xlsx 文件即可。

刚开始学习写CSDN Blog,希望将此作为自我提升的记录,各位大大有任何建议或问题尽情留言。 欢迎大家的批评与指正。

注:参考书籍《python数据分析基础》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3